##
## @file Makefile
## Betriebssysteme myfind Makefile
## Beispiel 1
##
## @author Franz Passecker <franz.passecker@technikum-wien.at>
## @date 2015/03/07
##

##
## ------------------------------------------------------------- variables --
##

CC	= gcc
CFLAGS	= -DDEBUG -Wall -pedantic -Werror -Wextra -Wstrict-prototypes -fno-common -g -O3
CP	= cp
CD	= cd
MV	= mv
GREP	= grep
DOXYGEN = doxygen

OBJECTS	= myfind.o

EXCLUDE_PATTERN = footrulewidth

##
## ----------------------------------------------------------------- rules --
##

## Pattern-Rule: alle .o-Files koennen aus einem .c-File erzeugt werden
%.o : %.c
	$(CC) $(CFLAGS) -c $<

##
## --------------------------------------------------------------- targets --
##

## erstellt myfind binary
all: myfind

## ruft gcc samt flags auf
myfind: $(OBJECTS)
	$(CC) $(CFLAGS) -o $@ $^

## löscht alle .o- und Backupfiles
clean:
	$(RM) *.o *~ myfind

## löscht vorhandene Dokumentation
distclean: clean
	$(RM) -r doc/

## erstellt neue doxygen-Dokumentation
doc: html pdf

html:
	$(DOXYGEN) doxygen.dcf

pdf: html
	$(CD) doc/pdf && \
	$(MV) refman.tex refman_save.tex && \
	$(GREP) -v $(EXCLUDE_PATTERN) refman_save.tex > refman.tex && \
	$(RM) refman_save.tex && \
	make && \
	$(MV) refman.pdf refman.save && \
	$(RM) *.pdf *.html *.tex *.aux *.sty *.log *.eps *.out *.ind *.idx \
	      *.ilg *.toc *.tps Makefile && \
	$(MV) refman.save refman.pdf

##
## ---------------------------------------------------------- dependencies --
##

##
## =================================================================== eof ==
##
